﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>检测隐藏窗口 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 检测隐藏窗口 function determines whether invisible windows are &quot;seen&quot; by the script." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>检测隐藏窗口</h1>

<p>设置脚本是否可以"看见"隐藏的窗口.</p>

<pre class="Syntax"><span class="func">检测隐藏窗口</span> Mode</pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Mode</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p>
    <p><code>1</code> 或 <code>True</code>: 能检测到隐藏窗口.</p>
    <p><code>0</code> 或 <code>False</code>: 这是默认的. 除了 <a href="WinShow.htm">显示窗口</a> 函数, 其他函数都不会检测隐藏窗口.</p>
  </dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>在某些情况下, 打开 检测隐藏窗口 可能会使脚本编写变得困难, 因为有些隐藏的系统窗口可能意外地匹配上您想要操作的另一个窗口的标题或文本. 因此在大多数脚本中应该让此设置保持关闭. 然而, 当您希望直接操作隐藏窗口而不想首先使用 <a href="WinShow.htm">显示窗口</a> 显示这些窗口时, 则需要打开此设置.</p>
<p>除 <a href="WinShow.htm">显示窗口</a> 外的所有窗口函数都会受此设置的影响, 包括 <a href="WinActivate.htm">激活窗口</a>, <a href="WinActive.htm">窗口已激活</a>, <a href="WinWait.htm">等待窗口</a> 和 <a href="WinExist.htm">窗口存在</a>. 与之相比, 即使没有检测隐藏窗口, <a href="WinShow.htm">显示窗口</a> 始终能显示隐藏窗口.</p>
<p>在以下情况下, 不需要开启 检测隐藏窗口:</p>
<ul>
  <li>当使用一个<a href="../misc/WinTitle.htm#ahk_id">纯粹的 HWND</a> 时, 如 <code>显示窗口(内_脚本句柄)</code>.</li>
  <li>当使用一个带有
  <a href="../misc/WinTitle.htm#ahk_id">Hwnd 属性的对象</a>(如 <a href="../objects/Gui.htm">Gui</a>) 时, 如 <code>置顶窗口(myGui)</code>.</li>
  <li>当通过 <a href="../misc/WinTitle.htm#ahk_id">ahk_id 方法</a> 或作为<a href="../misc/WinTitle.htm#LastFoundWindow">最后一个窗口</a>访问控件或子窗口时.</li>
  <li>当通过 <a href="../objects/Gui.htm#LastFound">+LastFound</a> 选项访问 界面 窗口时.</li>
</ul>

<p>通过 <a href="../misc/WinTitle.htm#ahk_id">ahk_id 方法</a>或作为<a href="../misc/WinTitle.htm#LastFoundWindow">最后找到的窗口</a>访问控件或子窗口时, 无需打开 检测隐藏窗口. 通过 <a href="../objects/Gui.htm#LastFound">+LastFound</a> 选项访问 界面 窗口时, 同样是不需要的.</p>
<p>Cloaked(非显示) 窗口被视为隐藏的. 在 Windows 8 中引入的 Cloaked 窗口是指处于非活动状态的虚拟桌面或 UWP 应用程序的窗口, 这些窗口被挂起是为了提高性能, 或更确切地说是减少内存消耗. 在 Windows 10 中, 这些进程在任务管理器中以绿色的叶子指示. 此类窗口在视图中是隐藏的, 但是可能仍具有 WS_VISIBLE 窗口样式.</p>
<p>内置变量 <strong>内_检测隐藏窗口</strong> 包含了当前设置(1 或 0).</p>
<p>每个新运行的<a href="../misc/Threads.htm">线程</a>(如 <a href="../Hotkeys.htm">热键</a>, <a href="../objects/Menu.htm">自定义菜单项</a>或<a href="SetTimer.htm">定时</a>子程序) 都会以此函数的默认设置开始. 这个默认设置可以通过在<a href="../Scripts.htm#auto">脚本启动</a>中使用此函数来改变.</p>
<h2 id="Related">相关</h2>
<p><a href="DetectHiddenText.htm">检测隐藏文本</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>检测隐藏窗口 True</pre>
</div>

</body>
</html>